home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / zm16src / zmdm.doc < prev    next >
Text File  |  1988-05-22  |  28KB  |  718 lines

  1.     zmdm.doc, v1.6 ++jrb
  2.  
  3.                 ACKNOWLEDGEMENTS
  4.  
  5.     ZMDM was derived from rz/sz for Unix  posted by 
  6.     Chuck Forsberg (...!tektronix!reed!omen!caf ). We
  7.     thank him for his excellent code, and for giving
  8.     us permission to use and distribute his code and
  9.     documentation.
  10.  
  11.     The code for detecting baud rate at startup is courtesy
  12.     of Brian Katzung (katzung@laidbak.UUCP). Thanks very
  13.     much!
  14.  
  15.     Andy Nicola did a lot of testing of the new features.
  16.     Thank You very much!
  17.  
  18.     Thanks to the many users on the net who wrote in.
  19.     
  20. ----------------------------------------------------------------------------
  21.     Enhancements since V1.2: (the last Usenet  release).
  22.     
  23.         o Some cleanup, moved common things around.
  24.           Some cosmetic additions.
  25.  
  26.         o MWC 3.0 compatible. The sample MW makefiles
  27.           reflect the setup required for MWC  V 3.0.6.
  28.  
  29.         o Manx Aztec C compatible. Tested with V 3.6a
  30.           of the compiler. Produces the smallest code
  31.           of all the compilers tested. See config.h,
  32.           makefile.man and makefman.sta.
  33.  
  34.         o Auto Baud Rate detection on startup:
  35.           Previously ZMDM would set the baud rate
  36.           to a compile time configurable rate on
  37.           startup (it needed to know the baud rate
  38.           to determine its default packet size). Thanks
  39.           to code contributed by Brian Katzung, now it
  40.           detects the baud rate on startup.
  41.           Of course you can set the baud rate
  42.           within ZMDM (by hitting '<HELP>'  'b' ).
  43.  
  44.         o Compile time option to use all available memory
  45.           as recv/send buffer. See DYNABUF, LEAVEALONE and
  46.           MINACC preprocessor symbols in config.h. If you
  47.           prefer to use a fixed size buffer, this is still
  48.           possible by not #define'ing DYNABUF and setting
  49.           BBUFSIZ. MegaST OK - thanks Andy Nicola.
  50.  
  51.         o Stand Alone versions of RZ and SZ can be made
  52.           by compiling the sources with the preprocessor
  53.           symbols 'STANDALONE' #define'ed. See the makefile
  54.           'MAKEFILE.STA' for more details.
  55.           Stand Alone versions DO NOT do any command line
  56.           argument expansions for wild cards or directories
  57.           (unlike the integrated ZMDM).
  58.           Stand Alone versions tested from within Gulam,
  59.           Flash and Intersect. Thanks to Andy Nicola for
  60.           testing these features.
  61.  
  62.         o Remote versions of ZMDM, RZ and SZ can be made by
  63.           compiling the sources with the preprocessor symbol
  64.           'REMOTE' #define'ed. A remote version listens and
  65.           does all its I/O thru the serial port. Of course
  66.           it has to be fired up from console. One of our
  67.           area BBS's provides this as a D/L option, where
  68.           the BBS program execs a remote ZMDM, and one you exit
  69.           you return back to the BBS program.
  70.  
  71.             o Added -B (note: uppercase B) option to both RZ and SZ.
  72.           the -B function is a binary mode override, that disregards
  73.           the extension when deciding the transfer mode. This is
  74.           useful when say you are backing up your whole disk
  75.           to say a Unix host. (backup the exact image of the files),
  76.           or doing St-to-St type transfers.
  77.         
  78.         o Now compatible with the PD DLIB library. The
  79.           pre-processor symbol DLIBS must be defined. Only
  80.           tested with the Alcyon version of the library.
  81.  
  82.         o Added the phone module (a simple dialer with a
  83.           telephone numbers directory). This module is
  84.           only compiled in if the preprocessor symbol
  85.           'PHONES' is #define'ed. For those of you who
  86.           are familiar with XMDM, this module was directly
  87.           ripped out of there, with a small bug fix that
  88.           prevented it from running under TurboSt.ACC.
  89.  
  90.         o Long packet lengths now allowed at slower baud rates
  91.           rather than insisting on using the default as the max
  92.           packet length. For instance
  93.             sz -l 1024 files..
  94.           will now send 1024 byte packets at low baud rates (<= 2400).
  95.           The corresponding change has been made to the unix
  96.           end of the software too.
  97.  
  98.         o TurboSt.ACC note:
  99.             The high rez toggle (25/50 lines) on a
  100.         monochrome monitor will NOT work is TurboSt.ACC is
  101.         installed. The problem is on the TurboSt.ACC end. Using
  102.         the high rez toggle does'nt cause any ill-effect, it just
  103.         does not do anything.
  104.           
  105.     Enhancements since V1.0:
  106.         o (This enhancement is only present when
  107.            you compile with the pre-processor symbol
  108.            `RECURSE' defined - see the makefile's)
  109.           sz now takes a  directory as an argument.
  110.           If the name of a directory is given as an
  111.           argument, then the contents of that directory
  112.           and all its subdirectories are sent. A new
  113.           option to sz is '-P <dir or file>'
  114.           (capital 'P' not 'p'), that
  115.           'prunes' the expansion of a directory. For
  116.           example if you wanted to send all the files
  117.           in the 'C' partition of your hard disk, except
  118.           the 'tmp', 'usr' and 'foo\bar' subdirectories, you would
  119.           issue the following command in the transfer
  120.           shell:
  121.  
  122.              sz -f -P c:\tmp -P c:\usr -P c:\foo\bar c:\
  123.  
  124.           Notice that you may specify multiple -P 'rune
  125.           options. The argument to the -P option may also be
  126.           the name of a file that you want to prune off.
  127.           Also note that to send full path names
  128.           to the remote end, the '-f' option is required,
  129.           otherwise the remote end will create all the
  130.           files in its current working directory. (Also
  131.           see CWRU extension to Unix 'rz', where 'rz' when
  132.           receiving full path names (ie. when you specify the
  133.           '-f' option to sz on the ST end) will create all
  134.           subdirectories required to receive the file). The
  135.           ST 'rz' always creates all subdirectories required
  136.           to receive a path when the other end is sz'ing with
  137.           the '-f' option. Also note that in both the rz's
  138.           all subdirectories are created relative to the 
  139.           current working directory, even though the path may
  140.           specify an absolute path.
  141.  
  142.             o File name mapping is slightly changed from V1.0.
  143.           When receiving a filename that has multiple '.'s
  144.           all but the last '.' is replace with an '_'. So
  145.           'foo.bar.ext' becomes 'foo_bar.ext'. Similarly
  146.           '123.456.789\aaa.bbb.ccc' becomes '123_456.789\aaa_bbb.ccc'.
  147.           As in V1.0, the filename and extension (of each
  148.           component of a path name) are truncated to 8 and 3
  149.           characters respectively. So '123.456789.ext\foobarbaz'
  150.           becomes '123_4567.ext\foobarba'. Also note that
  151.           while sending, '\'s are sent as '/'s. The ST drive
  152.           specifier part of a path name is never sent.
  153.           So 'c:\file.ext' is sent as '/file.ext' (remember:
  154.           that full pathnames are only sent when the '-f'
  155.           option is specified to 'sz').
  156.  
  157.         o Many bug fixes since V1.0!
  158.  
  159. ----------------------------------------------------------------------------
  160.  
  161.  
  162.     Zmdm consists of two main components:
  163.         o The terminal emulator
  164.         o The transfer shell
  165.  
  166.     - The terminal emulator emulates a 80*25 terminal
  167.     (or optionally the 80*50 mode on Mono systems only).
  168.     It uses the escape codes of the bios built in enhanced
  169.     vt52 emulator. For UN*X users i have included the
  170.     termcap entry that we use.
  171.  
  172.     - The transfer shell lets you send/receive files using
  173.     Xmodem/Xmodem-CRC/Xmodem-1K/Ymodem or Zmodem protocols.
  174.         In addition it provides UN*X csh like command for your
  175.     convenience, and does (TOS style) wild-card handling,
  176.         and (only single) quoting of arguments. Please note that
  177.     this is a convenience feature, and in no way does it
  178.     pretend to be compatible with csh or any other shell.
  179.     See the accompanying file YMODEM.DOC by Chuck Forsberg,
  180.     for details of the above transfer protocols.
  181.  
  182.     This note describes the commands available from the
  183.     "transfer shell". The transfer shell is the built in command line
  184.     interface. In case you are wondering why we choose to
  185.     use a command line interface, the answer is quite simple.
  186.     The functions available have so many options and combinations
  187.     thereof, that it would be totally impractical if not impossible
  188.     to put them in menus/dialogues (each menu will have to be at least
  189.     3 levels deep). Of course it is much easier to type something
  190.     like 'sz -l 128 -L 128 *.c' than answering the at least three
  191.     dialogues required to pick up the same info. You enter the
  192.     transfer shell from the terminal emulator by hitting <HELP>
  193.     and choosing 'T' from the main menu. Once you are done using the
  194.     transfer shell, you simply hit <RETURN> to pop back into the terminal
  195.     emulator, exactly where you left off.
  196.  
  197.     This program was written primarily for situations where you
  198.     are connected to remote hosts either directly or via modems.
  199.     The timing and error parameters are NOT suitable for hosts
  200.     such as CompuServe etc, where there may large delays or your
  201.     phone line is noisy. We distributed a program called XMDM earlier
  202.     that is very tolerant of delays/noisy lines and has been used
  203.     very successfully for BBS'ing around the country. XMDM has
  204.     conveniences such as dialing directories etc for that purpose.
  205.     If you have a old version of XMDM ( < V1.8) that does not have
  206.     dialing directories etc, please mail me for a new copy.
  207.  
  208.     ZMDM has been tested in the following ways:
  209.     1) Between two ST's running ZMDM. 19200 Baud no problem!
  210.     2) With unix sz/rz running on a BSD4.3 on Vaxen.
  211.     3) With unix sz/rz running on Apollo Dn330/Dn300 under Aegis and
  212.        Domain IX (over a siologin line).
  213.     4) With unix sz/rz running on a Sun under SunOS.
  214.     6) With an Ibm At running Procomm using Ymodem/Xmodem.
  215.     7) With ForemSt bbs, with the BBS sending in Ymodem batch
  216.        mode. (note: ForemSt bbs's do not take batch uploads -
  217.        Matt Singer are you listening??)
  218.  
  219.     8) With a Mac running MicroPhone using Ymodem mode.
  220.     9) With an Intel 210 box running Xenix (yech!).
  221.         
  222.     UNIX users please note:
  223.         If the load on your system is high, the UNIX tty
  224.     driver drops characters when receiving at 9600 or higher baud rates.
  225.     There are two ways around this problem:
  226.     - use shorter packet and frame lengths using the `-l' and `-L' options
  227.     of SZ. For examples `sz -l 128 -L 128 files...' work most of
  228.     the time at 9600/19200 baud without any problem.
  229.  
  230.     - reduce your baud rate to 4800 baud. Normally the first solution
  231.     works fine, but if you have an extraordinarily loaded machine
  232.     (or are running on a brain damaged 750 with DZ11's), then 4800 baud
  233.     works better.
  234.     
  235.     - Those who have 3b2 boat anchors, the tty driver (at least on
  236.      the boxes we have) is totally useless over 1200 baud.
  237.  
  238.     -----
  239.     
  240.  
  241. NAME
  242.      rb, rz - XMODEM, YMODEM, ZMODEM (Batch) file receive
  243.  
  244. SYNOPSIS
  245.      rz    [-Bpqtv]
  246.      rb    [-pqtv]
  247.      rz    [-cqtv] file
  248.  
  249.  
  250. DESCRIPTION
  251.      This program uses error correcting    protocol to receive files
  252.      over a serial port    from a variety of programs running under
  253.      TOS, PC-DOS, CP/M, Unix, and other operating systems.
  254.  
  255.      The first form of rz (Receive ZMODEM) receives files with
  256.      the ZMODEM    batch protocol.     If the    sending    program    does not
  257.      support ZMODEM, rz    steps down to YMODEM protocol after 50
  258.      seconds.  This delay can be eliminated by calling the pro-
  259.      gram as rb    .
  260.  
  261.      When receiving with XMODEM    or YMODEM, Rz accepts either
  262.      standard 128 byte sectors or 1024 byte sectors (YAM -k
  263.      option).  The user    should determine when the longer block
  264.      length actually improves throughput without causing prob-
  265.      lems.
  266.  
  267.      If    extended file information (file    length,    etc.) is
  268.      received, the file    length controls    the number of bytes writ-
  269.      ten to the    output dataset (YMODEM only), and the modify time
  270.      and file mode (iff    non zero) are set accordingly. A special feature
  271.      of the ST implementation is that if the remote end sends
  272.      full path names (-f option of sz) all required directories
  273.      will be automatically created on the ST end. The directories
  274.      will be rooted at the current directory and not at the root level.
  275.  
  276.      The second    form of    rz receives a single file with XMODEM
  277.      protocol.    The user must supply the file name to both send-
  278.      ing and receiving programs.
  279.  
  280.      When rz is invoked, Verbose is set to 2, causing frame by
  281.      frame progress reports to stderr.  This may be disabled with
  282.      the q option.
  283.  
  284.  
  285.      The meanings of the available options are:
  286.      
  287.      B      (ZMODEM) force all files to be received in binary mode.
  288.       Useful for ST-to-ST transfers (for Ascii files where
  289.       you don't want LF to CRLF conversion). This is
  290.       a local override, specifying `-B' overrides any mode
  291.       the sender specifies (it however will still honor any `protect'
  292.       or `append' requests from the sender)
  293.       (Applicable to ZMODEM transfers only).
  294.  
  295.      c      Request 16 bit CRC.  XMODEM file transfers default to    8
  296.       bit checksum.     YMODEM    and ZMODEM normally use    16 bit
  297.       CRC.
  298.  
  299.      p      (ZMODEM) Protect: skip file if destination file exists.
  300.  
  301.      q      Quiet    suppresses verbosity.
  302.  
  303.      t tim
  304.       Change timeout to tim    tenths of seconds.
  305.  
  306.      v      Verbose, more v's give more verbose. Info is also
  307.       appended to logfile 'rzlog' .    More v's generate more output.
  308.  
  309. ZMODEM CAPABILITIES
  310.      Rz    supports incoming ZMODEM binary    (-b), ASCII (-a), protect
  311.      (-p), and append (-+) requests, and ZMODEM    command    execu-
  312.      tion. The incoming mode may be optionally overriden by specifying
  313.      the `-B' option to Rz, in which case all files will be received
  314.      in binary mode regardless of the incoming mode (protect and append will
  315.      still be obeyed). 
  316.  
  317.      Rz also supports incoming pathnames, and will recursively
  318.      create all subdirectories as required. Rz preserve file mod
  319.      times, and file protection. The translation of Unix protection
  320.      bits to ST file attributes is based on the Unix owner (07XX)
  321.      protection bits.  Presently, only read and write bits are considered.
  322.      All received pathnames are considered to be rooted at the 
  323.      current working directory. Any leading '/' from unix systems
  324.      is discarded (ie. all incoming pathnames are considered unrooted,
  325.      and are locally 'planted' at the current working directory).
  326.      Ascii/Binary file modes are determined by examining the file
  327.      extension on the incoming path name. If the extension is one
  328.      of the following (case independent), then it is assumed to be
  329.      a binary file, ascii other wise. The ascii translation of 
  330.      '\n' to '\r\n' is done locally for ZMODEM (only).
  331.      For X or Y modem the sender determines the file type (see
  332.      the file 'common.c' for the latest list).
  333.  
  334.     ".PRG", ".TOS", ".TTP", ".ARC", ".ACC", ".IMG", ".RSC", ".O",
  335.         ".OBJ", ".NEO", ".PIC", ".PI1", ".PI2", ".PI3", ".PQ1", ".PQ2",
  336.         ".PQ3", ".BRD", ".ANI", ".STW", ".FNT", ".PRT", ".SNG", ".NEC",
  337.         ".CNF", ".Z"  , ".DFN", ".GEM", ".EZD", ".LNK", ".SYM",
  338.         ".PIX", ".X32", ".OUT", ".A",   ".CCC", ".CL",  ".CMD", ".COM",
  339.         ".CRL", ".DAT", ".DIR", ".EXE", ".OVL", ".PAG", ".REL", ".SAV",
  340.         ".SUB", ".SWP", ".SYS", ".TAR", ".UTL", ".IM",  ".PAK"
  341.  
  342.  
  343.  
  344. RZ/SZ(1)              ST Programmer's Manual            RZ/SZ(1)
  345.  
  346. NAME
  347.      sz
  348.  
  349. SYNOPSIS
  350.      sz    [-+BdefkLlNnopqtuvy][-P <directory of file>]*  file ...
  351.      sz    -X [-kqtuv] file
  352.      sz    [-oqtv] -c COMMAND
  353.      sz    [-oqtv] -i COMMAND
  354.  
  355. DESCRIPTION
  356.      Sz    uses the ZMODEM, YMODEM    or XMODEM error    correcting proto-
  357.      col to send one or    more files over    a serial port to a
  358.      variety of    programs running under PC-DOS, CP/M, Unix, VMS, TOS
  359.      and other operating systems.
  360.  
  361.  
  362.      The first form of sz sends    one or more files with ZMODEM or
  363.      YMODEM batch protocol.  Normally, only the    file name part of
  364.      the pathname is transmitted. Additional
  365.      information about the file    is transmitted.     If the    receiving
  366.      program uses this information, the    transmitted file length
  367.      controls the exact    number of bytes    written    to the output
  368.      dataset, and the modify time and file mode    are set    accord-
  369.      ingly.
  370.  
  371.      The second    form of    sz uses    the -X flag to send a single file
  372.      with XMODEM or XMODEM-1k protocol.     The user must supply the
  373.      file name to both sending and receiving programs.
  374.  
  375.  
  376.      The third form sends a single COMMAND to the receiver for
  377.      execution.     Sz exits with the COMMAND return value.
  378.  
  379.  
  380.      The fourth    form sends a single COMMAND to the receiver for
  381.      execution.     Sz exits as soon as the receiver has correctly
  382.      received the command, before it is    executed.
  383.  
  384.  
  385.      In SZ Verbose is set to 2, causing frame by frame pro-
  386.      gress reports to stderr.  This may    be disabled with the q
  387.      option.
  388.  
  389.      The meanings of the available options are:
  390.  
  391.      +      Instruct the receiver    to append transmitted data to an
  392.       existing file    (ZMODEM    only).
  393.  
  394.      B      (ZMODEM) force all files to be sent in binary mode.
  395.       Useful for ST-to-ST transfers (for Ascii files where
  396.       you don't want LF to CRLF conversion).
  397.       (Applicable to ZMODEM transfers only).
  398.  
  399.      c COMMAND
  400.       Send COMMAND to the receiver for execution, return with
  401.       COMMAND's exit status.
  402.  
  403.      d      Change all instances of "." to "/" in    the transmitted
  404.       pathname.  Thus, C.omenB0000 (which is unacceptable to
  405.       MSDOS    or CP/M) is transmitted    as C/omenB0000.     If the
  406.       resultant filename has more than 8 characters    in the
  407.       stem,    a "." is inserted to allow a total of eleven.
  408.  
  409.      E      Escape only Ctrl-X control characters; normally XON,
  410.       XOFF,    CR-@-CR, and Ctrl-X are    escaped.
  411.  
  412.      e      Escape all control characters; normally XON, XOFF, CR-
  413.       @-CR,    and Ctrl-X are escaped.
  414.  
  415.      f      Send Full pathname.  Normally    directory prefixes are
  416.       stripped from    the transmitted    filename.
  417.  
  418.      i COMMAND
  419.       Send COMMAND to the receiver for execution, return
  420.       Immediately upon the receiving program's successful
  421.       reception of the command.
  422.  
  423.      k      (XMODEM/YMODEM) Send files using 1024    byte blocks
  424.       rather than the default 128 byte blocks.  1024 byte
  425.       packets speed    file transfers at high bit rates.  (ZMO-
  426.       DEM streams the data for the best possible throughput.)
  427.  
  428.      L N  Use ZMODEM sub-packets of length N.  A larger    N (32 <=
  429.       N <= 1024) gives slightly higher throughput, a smaller
  430.       N speeds error recovery.  The    default    is 128 below 300
  431.       baud,    256 above 300 baud, or 1024 above 2400 baud.
  432.  
  433.      l N  Wait for the receiver    to acknowledge correct data every
  434.       N (32    <= N <=    1024) characters.  This    may be used to
  435.       avoid    network    overrun    when XOFF flow control is lack-
  436.       ing.
  437.  
  438.      n      (ZMODEM) Send    each file if destination file does not
  439.       exist.  Overwrite destination    file if    source file is
  440.       newer    or longer than the destination file.
  441.  
  442.      N      (ZMODEM) Send    each file if destination file does not
  443.       exist.  Overwrite destination    file if    source file has
  444.       different length or date.
  445.  
  446.      o      (ZMODEM) Disable automatic selection of 32 bit CRC.
  447.  
  448.      p      (ZMODEM) Protect existing destination    files by skipping
  449.       transfer if the destination file exists.
  450.  
  451.      q      Quiet    suppresses verbosity.
  452.  
  453.      r      Resume interrupted file transfer.  If    the source file
  454.       is longer than the destination file, the transfer com-
  455.       mences at the    offset in the source file that equals the
  456.       length of the    destination file.
  457.  
  458.      t tim
  459.       Change timeout to tim    tenths of seconds.
  460.  
  461.      u      Unlink the file after    successful transmission.
  462.  
  463.      v      Verbose causes a list    of file    names to be appended to
  464.       szlog .    More v's generate more output.
  465.  
  466.      X      Send a single    file with XMODEM or XMODEM-1k protocol.
  467.  
  468.      y      Instruct a ZMODEM receiving program to overwrite any
  469.       existing file    with the same name.
  470.  
  471.      P <directory or file>
  472.     (ZMODEM) Sz may be given the name of
  473.     a directory, in which case it will send the contents
  474.     of the directory, and all the subdirectories thereof.
  475.     The -P 'Prune' option is used to prune out the named directory
  476.     or file while expanding the directory tree. Multiple
  477.     -P options may be specified. This option
  478.     is only present when the source is compiled with the
  479.     pre-processor symbol `RECURSE' defined.
  480.  
  481.     SZ guesses the file mode by examining the filename extension as
  482.     discusses under RZ above. SZ -f send full pathnames with '\'
  483.     converted to '/'. The ST drive specifier is never sent.
  484.  
  485. SEE ALSO
  486.      ZMODEM.DOC, YMODEM.DOC, IMP(CP/M),    cu(1), Professional-YAM
  487.      manual, sz(omen), usq(omen), undos(omen)
  488.  
  489.      Compile time options required for various operating systems
  490.      are described in the source file.
  491.  
  492. NOTES
  493.     Depending on your file structure, when using the recursively
  494.     descend a directory option of Sz, ZMDM can demand a lot of
  495.     dynamic memory. When the pre-processor symbol `RECURSE' is
  496.     defined, for Mark Williams C, `_stksize' is set to 16K. If
  497.     you are using Alcyon C, please use a decent version of
  498.     GEMSTART.S. We use the version from pratt@atari with
  499.     memory model (STACK=1), which gives quarter of available
  500.     memory to stack+heap. Note that all the dynamic memory is
  501.     taken off the program heap (for Alcyon, and off the Arena
  502.     above the stack for Mark Wiliams), ie. ZMDM uses `malloc' not
  503.     `Malloc'.
  504.  
  505.     It is possible to run out of dynamic memory when descending
  506.     a file structure with a lot of files and/or deep-hierarchies.
  507.     The simplest way to work around this problem is to do the
  508.     sending in parts by using the -P rune option of Sz. For
  509.     instance if you run out of memory while trying to send your
  510.     C partition, you may want to prune out some directories and
  511.     send things in parts. In my case i backup my C partition to
  512.     our unix host in the following manner:
  513.  
  514.     sz -f -P c:\bin -P c:\lib c:\  /* send eveything in the C
  515.                         partition except the 'bin'
  516.                         and 'lib' subdirectories */
  517.  
  518.     sz -f c:\bin c:\lib          /* then send the 'bin' and 'lib'
  519.                         directories */
  520.  
  521.     The second solution depends on if you are using Mark Williams
  522.     or Alcyon C libraries. If you are running out of memory because
  523.     of deep hierarchies, you need to increase the stack. If you are
  524.     running out of memory because of a lot of files, then you
  525.     need to decrease the stack to allow for a larger arena in
  526.     the case of MWC (and trade-off for depth), or in the case of
  527.     Alcyon you need to increase stack+heap. On systems with a
  528.     large Ramdisk or many ACCs make sure you have enough space
  529.      before doing this.
  530.  
  531.     The TTY input buffering on    some systems may not allow long
  532.     blocks or streaming input,    especially at high baud    rates.
  533.     The Pro-YAM zmodem    l numeric parameter may    be set to a value
  534.     between 64    and 1024 to limit the burst length.
  535.  
  536. BUGS
  537.      THIS SOFTWARE IS STILL UNDER DEVELOPMENT AND ALMOST POSITIVELY
  538.      CONTAINS BUGS. PLEASE REPORT ALL SUCH CRITTERS TO mandrill!bammi.
  539.  
  540.      Pathnames are restricted to 127 characters.  In XMODEM sin-
  541.      gle file mode, the    pathname given on the command line is
  542.      still processed as    described above.
  543.  
  544. FILES
  545.  
  546.      (rz|sz)log    stores debugging output    generated with -vvv[v]*
  547.             option.
  548.  
  549. OTHER COMMANDS
  550.     The following command are available in the
  551.     transfer shell:
  552.  
  553.     <regular-expression> ::= <file name> | <wild card> |
  554.                  'quoted string'
  555.     NB: A quoted string cannot contain embedded single quotes. There
  556.         is no escape character available in a quoted string.
  557.  
  558.     rm,   remove files
  559.         rm [-i] <regular expression>
  560.         -i ::= interactive mode, you are prompted before
  561.                file(s) are removed.
  562.  
  563.     cp,   copy files
  564.         cp <many files> directory
  565.             copy all files into directory
  566.             cp *.c d:\foo - copy all C files into foo 
  567.                         directory on drive D:
  568.         cp <file> <directory>
  569.             copy file to directory\file.
  570.  
  571.         cp <file> <file>
  572.             file to file copy
  573.             'cp file con:' to get the listing of a file.
  574.  
  575.     ls,   list directory
  576.         ls [wild card]
  577.         ls without an argument will list all files in the
  578.         current directory. If an argument is given, then
  579.         only files matching the wild card will be listed.
  580.             ls *.c - list all C files in current directory
  581.             ls d:\foo - list all files in foo directory on D:
  582.             ls d:\foo\*.c - list all C files in foo directory
  583.  
  584.     cd,   change working directory
  585.         cd directory
  586.  
  587.     md,   make a directory
  588.         md directory
  589.  
  590.     rd,   remove a directory
  591.         rd directory
  592.         Due to a Gemdos bug, you may have to say 'rd directory'
  593.         twice to get rid of directory. This happens when you
  594.         try to remove a directory that you have never visited.
  595.  
  596.     pwd,  print  working directory
  597.         prints the current working directory
  598.  
  599.     df,   check free space
  600.         df [device]
  601.         df without an argument will show free space on current drive.
  602.         df with an argument will show free space on specified drive.
  603.  
  604. TERMCAP
  605.     Termcap entries that may be used for the terminal emulator.
  606.  
  607. st|520st|atariST|520 or 1040, bw, std sys font, 25 lines, 80 col:\
  608.     :ae=\Eba:al=\EL:am:as=\Ebc:\
  609.     :bl=^G:bs:\
  610.     :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:cr=^M:\
  611.     :dl=99\EM:do=\EB:\
  612.     :ho=\EH:\
  613.     :is=\Ev\Ee:\
  614.     :kd=\274:kh=\216:kl=\275:kr=\276:ku=\273:\
  615.     :le=^H:li#25:\
  616.     :nd=\EC:nl=^J:\
  617.     :pt:\
  618.     :se=\Eq:so=\Ep:sr=\EI:\
  619.     :ta=^I:\
  620.     :up=\EA:
  621.  
  622.  
  623. ST|ST25|atariSTcolor|as above but with color for standout :\
  624.     :ae=\Eba:al=\EL:am:as=\Ebc:\
  625.     :bl=^G:bs:\
  626.     :cm=\EY%+ %+ :co#80:li#25:cr=^M:cd=\EJ:ce=\EK:cl=\EH\EJ:\
  627.     :dl=99\EM:do=^J:\
  628.     :ho=\EH:\
  629.     :is=\Ev\Ee:\
  630.     :kd=\274:kh=\216:kl=\275:kr=\276:ku=\273:\
  631.     :le=^H:\
  632.     :nd=\EC:nl=^J:\
  633.     :pt:\
  634.     :so=\Ec2\Eb3:se=\Ec0\Eb3:sr:\EI:\
  635.     :ta=^I:\
  636.     :up=\EA:
  637.  
  638. sT|st50|AtariST emulating vt52, bw, 50 lines, 80 col:\
  639.     :ae=\Eba:al=\EL:am:as=\Ebc:\
  640.     :bl=^G:bs:\
  641.     :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :co#80:cr=^M:\
  642.     :dl=99\EM:do=^J:\
  643.     :ho=\EH:\
  644.     :is=\Ev\Ee:\
  645.     :kd=\274:kh=\216:kl=\275:kr=\276:ku=\273:\
  646.     :le=^H:li#50:\
  647.     :nd=\EC:nl=^J:\
  648.     :pt:\
  649.     :se=\Eq:so=\Ep:sr=\EI:\
  650.     :ta=^I:\
  651.     :up=\EA:
  652.  
  653. COMPILING
  654.  
  655.     The source provided with this distribution will compile
  656.     with either ALCYON C V4.14 as distributed with the 
  657.     Atari Development System,  with Mark Williams C Version 2.00
  658.     or later and with MANX Aztec C (V3.6a tested).
  659.     (please note that the system will NOT compile with earlier
  660.      versions of either compiler.)
  661.  
  662.     Edit config.h.
  663.  
  664.     If you are using Alcyon(and ALN for the linker), check paths in LNK
  665.  
  666.     Define the preprocessor symbol `RECURSE' if you
  667.     want the sz to accept directory names(and send its
  668.     contents), and for the -P option.
  669.  
  670.     To compile with Alcyon see the file `makefile.alc'
  671.     To compile with Mark Williams C see the file `makefile'
  672.     To compile with Manx Aztec C see the file `makefile.man'
  673.  
  674.     Rename ZMDM.PRG to ZMDM.TOS if you so desire.
  675.  
  676. MORE ALCYON NOTES:
  677.     -- Some people seem to have a bad version of as68 with Alcyon,
  678.      that does'nt handle static variables too well (ie. symbols of the
  679.      form "`name" in the assembler). Please make sure yours is not one of
  680.      these.
  681.  
  682.     -- Use a reasonable version of gemstart.s - ie. one which gives you
  683.      a decent amount of stack+heap space. One of the nicer versions
  684.      floating around is the one written by Alan Pratt @atari, that
  685.      gives you the various memory model options, and corrects the
  686.      bug with the bdos call as suggested by Robert Royar on this net.
  687.  
  688.     -- Do NOT use the `fix' distributed on CompuServe developers forum
  689.     in the file WILDFI.ARC (in Dl7). This fix does'nt fix anything,
  690.     it breaks everything!
  691.  
  692. KNOWN BUGS
  693.     -v's on the ST end don't do a thing!
  694.  
  695.     If a receive is cancelled/aborted, the receive file
  696.     buffer is not flushed to the file. Personally, i
  697.     view this as a feature rather than a bug, so it is
  698.     unlikely to be `fixed'.
  699.  
  700. DISCLAIMER
  701.     This code is in public domain, and you are encouraged
  702.     to distribute it further. You may however not sell the
  703.     code, or use it for any commercial gains. The code is
  704.     provided as is, and we are not responsible for any
  705.     omissions/errors, bugs, nor do we claim correctness or
  706.     its fitness for any purpose.
  707.  
  708.     Please forward your comments and suggestions to
  709.  
  710.                 Jwahar Bammi
  711.             usenet: mandrill!bammi@{decvax,sun}.UUCP
  712.             csnet:  bammi@mandrill.ces.CWRU.edu
  713.             arpa:   bammi@mandrill.ces.CWRU.edu
  714.             CompuServe: 71515,155
  715.  
  716.  
  717. /* EOF */
  718.